package com.todod.common.util;

import java.security.SecureRandom;
import java.util.Random;
import java.util.UUID;

public class RandomUtil {

	/**
	 * 生成指定位数的随机数
	 * 
	 * @Title: generatRandomNum
	 * @Description:
	 * @author gsh
	 * @date 2020年12月19日
	 * @param num 随机数位数
	 * @return
	 */
	public static String getRandomNum(int num) {

		String randomNum = "";
		Random random = new SecureRandom();
		for (int i = 0; i < num; i++) {
			int nextInt = random.nextInt(10);
			if (i == 0 && nextInt == 0) {
				i--;
				continue;
			}
			randomNum += nextInt;
		}

		return randomNum;
	}

	/**
	 * 生成16位不重复的随机数，含数字+大小写
	 * 
	 * @return
	 */
	public static String getUUID16() {
		StringBuilder uid = new StringBuilder();
		// 产生16位的强随机数
		Random rd = new SecureRandom();
		for (int i = 0; i < 16; i++) {
			// 产生0-2的3位随机数
			int type = rd.nextInt(3);
			switch (type) {
			case 0:
				// 0-9的随机数
				uid.append(rd.nextInt(10));
				break;
			case 1:
				// ASCII在65-90之间为大写,获取大写随机
				uid.append((char) (rd.nextInt(25) + 65));
				break;
			case 2:
				// ASCII在97-122之间为小写，获取小写随机
				uid.append((char) (rd.nextInt(25) + 97));
				break;
			default:
				break;
			}
		}
		return uid.toString();
	}

	public static String getUUID32() {
		return UUID.randomUUID().toString().replace("-", "");
	}

	public static void main(String[] args) {
		for (int i = 0; i < 100; i++) {
			System.out.println(getUUID32());
		}

	}
}
